assume cs:code
public divdw,dtoc


code segment
divdw: 
	push bx
    push ax
    mov ax,dx
    mov dx,0
    ;dx|ax除以cx，ax存储商（高16位），dx存储余数（对于下一次除法，恰好实现余数放在高16位）
    div cx
    mov bx,ax

    pop ax
    div cx
    mov bp,dx 
    mov dx,bx
	pop bx
    ret

dtoc:    
    push si
    mov si, 0  

change:
	mov cx,10
    call divdw     
	
    push ax
    push dx

    add ax,dx
    mov cx,ax
    pop dx
    pop ax

    add bp,48
    push bp
    inc si
	jcxz ending						

    jmp short change

ending: 
    mov cx,si
    mov si,0

write:
	pop ds:[si]

    inc si
    loop write
    ;在最后一个ASCII码后面写入0，表示字符串结束
    mov byte ptr ds:[si], 0

    pop si
    ret
code ends
end ;start